import { IS_PLATFORM } from 'common' import { useRouter } from 'next/router' import { useEffect } from 'react' import { PageContainer } from 'ui-patterns/PageContainer' import { PageHeader, PageHeaderDescription, PageHeaderMeta, PageHeaderSummary, PageHeaderTitle, } from 'ui-patterns/PageHeader' import { subscriptionHasHipaaAddon } from '@/components/interfaces/Billing/Subscription/Subscription.utils' import { ComplianceConfig } from '@/components/interfaces/Settings/General/ComplianceConfig/ProjectComplianceMode' import { CustomDomainConfig } from '@/components/interfaces/Settings/General/CustomDomainConfig/CustomDomainConfig' import { DeleteProjectPanel } from '@/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectPanel' import { General } from '@/components/interfaces/Settings/General/General' import { Project } from '@/components/interfaces/Settings/General/Project' import { TransferProjectPanel } from '@/components/interfaces/Settings/General/TransferProjectPanel/TransferProjectPanel' import DefaultLayout from '@/components/layouts/DefaultLayout' import SettingsLayout from '@/components/layouts/ProjectSettingsLayout/SettingsLayout' import { useOrgSubscriptionQuery } from '@/data/subscriptions/org-subscription-query' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' import type { NextPageWithLayout } from '@/types' const ProjectSettings: NextPageWithLayout = () => { const { data: project } = useSelectedProjectQuery() const { data: selectedOrganization } = useSelectedOrganizationQuery() const isBranch = !!project?.parent_project_ref const { projectsTransfer: projectTransferEnabled, projectSettingsCustomDomains } = useIsFeatureEnabled(['projects:transfer', 'project_settings:custom_domains']) const router = useRouter() useEffect(() => { if (!IS_PLATFORM) { router.push(`/project/default/settings/log-drains`) } }, [router]) const { data: subscription } = useOrgSubscriptionQuery({ orgSlug: selectedOrganization?.slug }) const hasHipaaAddon = subscriptionHasHipaaAddon(subscription) return ( <> Project Settings General configuration, domains, ownership, and lifecycle {/* this is only settable on compliance orgs, currently that means HIPAA orgs */} {!isBranch && hasHipaaAddon && } {projectSettingsCustomDomains && } {!isBranch && projectTransferEnabled && } {!isBranch && } ) } ProjectSettings.getLayout = (page) => ( {page} ) export default ProjectSettings